home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Precision Software Appli…tions Silver Collection 4
/
Precision Software Applications Silver Collection Volume 4 (1993).iso
/
stats
/
chadyn.exe
/
CASES.DOC
< prev
next >
Wrap
Text File
|
1988-12-11
|
61KB
|
1,162 lines
* MM for repeating the Main Menu
The Main Menu gives the equation, or at least the name, of the process
being studied, and it lists commands T, XX, and PM, and a number of
submenus:
* T for Trajectory
This command tells the computer to plot the dots of a trajectory, the
number being specified by command 'DOTS'. Use command "COORD" to specify
which coordinates will be plotted against which. The coordinates of the
vector y[] are numbered starting at 0. For differential equations,
typically one of the coordinates will be time. While the usual mode is to
plot one variable against another, there are other possibilities.
Using command "COORD" to set coordinates, you can specify that
you want one of the axes to be rho, and then rho would be varied over a
specified range using the XS or YS command, depending on whether rho was to
be the horizontal or vertical variable. You specify which using "C" when
you are asked for the numbers of the coordinates to be plotted. Then
specify the axis to be rho as being coordinate number -1. Another
possibility is to plot one coordinate against itself, in which case the
current value of the coordinate is plotted vertically while the horizontal
coordinate is the PREVIOUS value, that is the value from the previous dot.
The command
COORD -1 1<Enter>
says rho should be plotted horizonally while coordinate 1 will be plotted
vertically. You can hit <Enter> after COORD and the enter
the rest of the line.
See also commands 'PH', 'FR', and 'RS'.
** RT for Restore+Trajectory
A number of commands have variants that start with the letter 'R', which
means that the screen should be restored with the old picture before the
procedure begins; currently this takes a few seconds.
* MAPM return to the Process Menu
This command allows selection of a different differential equation or map;
most parameters are reset to the default values.
* XX terminate the program
No data is saved automatically.
*
* AB This command is used in conjunction with "IMAGES". First set
vectors ya and yb; then this command draws the line between ya and yb and
then stops if IMAGES = 0. If images is positive, then the specified number
of images of the line will be drawn. These images are typically curved
lines with some parts stretched more than others, so the routine has been
written in an adaptive way, that is the successive initial points along the
line chosen so that the image moves along with constant step size.
* CIRCLE Draw circle and possibly its image(s).
This command draws a circle and a number of images of that circle. The
radius is set using command RA and the number of images can be set using
command IMAGES or can be set interactively using interrupt 'I' to increase
the number of images by 1 or 'i' to set the number of images equal to 0. If
it is 0, then just the circle is drawn. This command is useful in basin
routines for determining if the circle with a specified center and radius
is actually in the basin of attraction, though of course y1 must be moved
to the center.
* CONT Dot count and picture will be CONTinued
This command is used to indicate that when a trajectory is plotted, the dot
number should CONTinue from the current value, assuming it is less than
"dots". This command is particularly useful in continuing the computation
of a basin boundary, since if this command is not invoked, even the command
"RBL", i.e., "restore the picture and compute the basin boundary in low
resolution" will result in the computation beginning anew from the upper
left of the picture. Often two commands such as "CONT" and "T" can be
enterred on one line, though this feature has not been checked out in
detail, and it has been assumed that the user will hit <return> after
command.
* DB (alias "BOX") for DrawBox
Entering DB changes the variable 'box' back and forth between 0 and 1. If
it is set to 1, a box will be drawn whenever the screen is cleared. If you
want a box to be drawn just once, it is preferable to hit 'b' while
plotting. Note that the box that gets drawn is initially the box around the
edge of the screen, but this can be changed while plotting using the arrow
keys and then x and/or X and/or y and/or Y:
x changes the LEFT edge of the box wherever the little cross is;
y changes the BOTTOM edge of the box wherever the little cross is;
X changes the RIGHT edge of the box wherever the little cross is;
Y changes the TOP edge of the box wherever the little cross is.
* INC Interrupts +/- are designed to change the variable rho by the
amount "RS". This command allows you to change the parameter; it is still
changed "RS". Inc allows you alternatively change the parameters C1, C2,
.... This command will be expanded in use in the future so that each place
that uses rho as a special variable will allow any variable to be
specified.
* V invert henon or Ordinary differential equations
The inverse of maps is needed for computing stable manifolds and is often
useful to see where points came from. The program currently allows you to
invert only the Henon map and any differential equation. In particular, the
Henon map is invertible its inverse is a Henon map (with different
parameters and a different scaling of the X and Y coordinates) and the
inverse can automatically be obtained using this command. If a picture is
printed or if data is saved on a disk, the numbers will correspond to those
of the inverted process. Interrupt 'v' has the same effect as this command.
**
Example: If you are plotting a trajectory of the Henon map and you wish to
find where some point came from, that is, what the inverse of the henon map
is for that point, then hit 'p' to pause the program, and move the small
cross to the point in question. Hit 'i' to move the large cross to the
position of the small cross. Invert the system by either hitting 'v' or by
entering command "V" (by hitting ':' and then v<Enter>. Now hit 'p', which
makes the inverted map take one step, and the new point will be shown by
the position of the large cross. Hitting 'p' again shows you where that
point came from. Do not forget to invert the system again to return to the
normal mode of operation. Hitting <Esc> resumes plotting.
* K for interrupt 'k'
This command is a toggle; it causes a cross to be drawn at each dot as it
is plotted.
* PAUSE
This command is a toggle; if it is on, the process will be in pause mode
when plotting commences.
* PH for PrinterHead
Printer ribbons usually aren't very dark unless they're very new, but a
dark printed picture can none-the-less be gotten by
PH <return>
3 <return>
which causes the Printer Head to strike each line 3 times. The default is
0. If it is set to a positive value, then when the picture is finished
(i.e., when the number of dot plots or attempted plots reaches 'DOTS', the
picture will be automatically printed. If your printer is not graphics-
compatible with the EPSON MX-80, the computer may crash and will have to be
rebooted. (No harm in that.)
* PS for PrintScreen
This command prints a high resolution copy of the picture that was on the
screen; this works only if you have an appropriate printer that is
compatible FOR GRAPHICS with the IBM Graphics printer or other similar
Epson printers.
If you do not have an appropriate printer, trying to print might
crash the system. Whether it does depends on the system. In such a case,
you lose the data in the program. You can first save your data (the values
of the vectors and parameters) using commands 'DD' and 'TD'.
* PT for PrintText
This command determines the amount of text to be printed; this can also be
changed while the program is plotting;
Settings: 0 means no header for pictures;
1 is small header;
>= 2 means substantial output both to printer when printing
a picture and also data appearing on the screen;
3 continuous scrn printing of lyap exps and dif.eqn.error
if computed; this level produces occasionally annoying
amounts of information, and may greatly slow down
computation due to the excessive ammounts printed;
4 print current state vector y[] on printer once, then
resets to 3
5 constantly prints current y[] on printer; hit 2 to reset
* RUNTIME sets the total runtime for process; it does not work for basin
boundaries.
* TDTIME causes the program to save the current picture and data in the
file whose name is specified using command "DN" and this saving of partial
results occurs every TDTIME minutes. Since the same file is used
repeatedly, old results are wiped out. This is designed for routines that
take a long time to run and you want to be sure your results are not lost.
* TIC causes the program to draw tic marks each time a box is drawn and
TIC2 causes a second fine set of tic marks to be drawn.
* TIME prints time of the day.
*
* SIGMA for changing the constant sigma
sigma is the Prandtl number in the Lorenz system.
* BETA for changing the constant sigma
* C1 for changing the value of C1
* C2 for changing the value of C2
* C3 for changing the value of C3
* C4 for changing the value of C4
* C5 for changing the value of C5
* C6 for changing the value of C6
* C7 for changing the value of C7
* C8 for changing the value of C8
* RHO for changing the value of rho
This command is for setting the special value rho. It can be changed while
plotting by hitting the + or - keys. The amount of change is determined
initially by command RS. The default change in rho is typically 1.
Furthermore the program can be told to make a series of pictures,
and after each the value of rho is incremented by amount rhostep (set using
the command RS), provided the command FR is used to set the Final Rho to a
value other than the current rho. If 'preiterates' is > 0, the initial
value will be reinitialized to y1[] for each picture.
See also command "COORDS", below in this section, to see how to
make "bifurcation diagrams" in which rho is varied as one of the
coordinates. See also section 4.12.
** RS for RhoStep
This changes rhostep, the amount that rho is changed by when hitting + or -
while the program is running; see also commands R and FR.
The simplest use of command 'RS' is for changing rho using the +
and - keys while the computer is plotted. While plotting, this step size
can be changed without returning to the menu by using either the "home" key
on the numeric key pad (to cut in half the amount that rho changes by) or
the "Pg Up" key to double the step size. The change is rho can also be used
for automatically making a series of pictures with regularly increasing (or
decreasing) steps in rho. Command 'FR' in the 'P' menu lets you specify the
final value of rho.
* PI for setting the number of pre-iterates The number of pre-
iterates PI should be >= 0. The usual default is 0. The program computes
this many points for attempted plotting before plotting begins. See also
'R'.
* DOTS total number of dots
This is the total number of dots that will be used in making a picture,
including attempts to plot dots that are off screen; the loop variable
'dot' that runs to 'dots' is reset to zero WHILE PLOTTING whenever the
trajectory vector is moved by using either 'i' or when y[] is changed using
the command the key 'm'. In particular the interrupt m00 (i.e., while in
the graphics screen hitting 'm', then'0', then '0') is a dumby move that
resets the counter without an actual move.
A basic concept in the program is the amount of computation
required for calculating one point for plotting. Hence you specify the
total number of dots to be plotted. If some turn out to outside the range
of the screen, they still count in the total. The basic "do-loop" uses dots
as a counter. Command 'PI' lets you specify the number of preiterates, that
is, the number of dots computed before the plotting begins. The do-loop
begins at -preiterates and actually only begins plotting when the counter
reaches 0. This is useful for getting pictures of chaotic attractors in
cases where you want to give the trajectory time to relax down to the
attractor. Command 'DOTS' gives the upper end of the loop.
The process can be set to plot every Runge-Kutta step. For some
differential equations, one dot might correspond in this terminology to 25
or 50 Runge-Kutta time steps, say for a total time of 2 pi. That might be
the case where the system has periodic forcing with that period.
* IPP for Iterates Per Plot (typically the value is one)
This command is particularly useful for obtaining the time-two-pi map from
a differential equation that is forced periodically. If 'SPC' in the DE
menu is set to say 25, then setting IPP to 25 will mean that one point is
plotted every cycle.
This command can also be useful for studying maps even if they do
not come from differential equations. If you want to examine the behavior
of a period 5 point of the Henon map, you may find it convenient to look
only at every fifth iterate.
* XS for XScale
This command allows you to change the scale of the screen for plotting
dots; the first number is the left hand side and the second is the right.
You must enter both with a space but no comma between them. The first
number can be larger than the second if you want a decreasing scale.
Example:
XS<Enter>
-3.5 5.<Enter>
* YS for YScale
This command allows you to change the scale of the screen. The first number
is the coordinate of the bottom of the screen and the second is the top.
You must enter both with a space but no comma between them. The first
number can be larger than the second if you want a decreasing scale.
* L for Lyapunov
This command is for changing the number of Lyapunov exponents computed by
the program. Lyapunov exponents can be computed for most of the processes
including the Lorenz system ('L') and the Henon map ('H'). Such additional
computations are time consuming and the computer slows substantially.
Computing all three exponents for the Lorenz system entails solving a 12
dimensional system, (not counting time, which is an extra variable) so
these computations have been made optional. Typing
L <return>
gives a prompt asking for the desired number of exponents to be computed.
This number of exponents to be computed is initially 0. If you want to
compute lyapunov exponents but 'L' doesn't appear on the Main Menu, then I
have not gotten around to setting up the extra computations that are
needed. The more exponents you compute, the slower it runs. Expect to let
it run quite a while. As mentioned above, the Lorenz system is 4
dimensional including time, but when computing one Lyapunov exponent, y[]
is 7 dimensional, that is a seven dimensional system of differential
equations. This becomes 10 or 13 dimensional when 2 or 3 exponents are
being computed. When they are being computed, the current best estimate of
those exponents is printed on the screen each iterate. It takes quite a
while (hours for Lorenz) to get moderately good convergence of these
exponents. See also interrupt 'L'.
WARNING:
**
What REALLY slows the computer is printing the Lyapunov exponents every
iterate. To avoid the large amount of printing, hit '2' once the program
starts plotting. To get the program to report the current values, hit '3'.
* COORDS for Coordinates
This command is for setting the coordinates to be plotted. See also command
T. Considerable detail is printed out when you enter "COORDS". For an
example, the Lorenz equations variables have four variables in this
implementation and they are numbered as follows:
x is 0; y is 1; z is 2; time is 3.
And in the initial setting the program plots variables 0 (horizontally)
against 2 (vertically).
This command will not appear for 2 dimensional systems because
there are only 2 coordinates; none-the-less if you wish to switch which is
vertical and which is horizontal, you can do it even though it is not
displayed.
There are two tricks that are available with this command:
**
A: Delayed coordinate. You can set the two coordinates to have the
same value, for example by saying both coordinates are number 0. If you do
that, then instead of plotting points along the diagonal as you would
expect, it plots vertically the specified coordinate of the trajectory but
horizontally it plots that coordinate from the previous time. That is, the
vertical coordinate is delayed. To delay it several time steps, use IPP to
change the number of iterates per plot.
**
B: Bifurcation Diagrams. See also the Section 4.12 on bifurcation
diagrams. If you specify that one of your two coordinates is # -1, then the
program plots rho for that coordinate. While ordinarily rho is a constant,
now it is varied. If you specify for example that the horizontal coordinate
number is -1, you will probably want to initialize rho at the left value
"X_lower", and as it iterates the map and plots dots, it will increment rho
until it reaches the value on the right side "X_upper". It will increment
rho through a series of 960 different values, distributing the total of
"DOTS" between. To plot rho horizontally and x vertically for a total of
96000 dots for the Henon map, that is 100 dots for each rho value, then do
the following when when the program is in the main menu for the Henon map.
Enter the following.
**
COORDS<return> (you will choose coordinates)
-1 0<return> (choose coordinate numbers -1 and 0)
XS<return> (X scale; the Y scale is already set to
reasonable default values, -2,2 so we set the X axis to run from 1 to 1.4)
1 1.4<return>
RHO<return> (initialize rho to the value:)
1.<return>
DOTS<return>
96000<return> (use no commas in writing 96000)
T<return> (begin plotting; rho will be initialized to be
1)
**
The above method assumes the number of pre-iterates is 0, the
default value. Better pictures are often produced if it is set to a
positive value. Then the program will then initialize y[] at the beginning
of each rho value and the first "PI" of the iterates of each rho value will
not be plotted. Notice in the above example there are only 100 iterates per
rho value so if "PI" was set larger than 100, nothing at all would be
plotted. When "PI" is positive, rho will automatically be initialized.
* FR for FinalRho
The program can make a series of pictures using consecutive values of
"rho". First set the desired number of dots for each picture (using
"DOTS"), say 50000. If you want pictures of the Lorenz attractor for rho =
28., 30., ..., 50., then enter RS to change "RhoStep" and set it to be 2.
Next it is necessary to set "rho_final" (using item 'FR' in the 'P'
(sub)menu) at 50:
DOTS <return>
50000 <return>
RS <return>
2. <return>
FR <return>
50. <return>
T <return>
Then go away and come back a couple hours later and you should have a
series of pictures --
* ALL for plotting in all active small windows
If more than one small window has been opened for plotting, then command
"all" causes all the small windows to be plotted simultaneously. This
capability is turned off by entering the command again or by hitting one of
the function keys that tell the computer to go to a specific window.
* SD for ScreenDiameter
A point that goes "far" from the screen will be assumed to be "diverging",
and is likely to be on route to infinity. So how far is far? 'SD' lets you
set a parameter "diameters", with default now = 4.0. If for example the
point leaves the screen and goes more than 'diameters' widths of the screen
left or right of the screen, or goes above or below the screen by
'diameters' times the height of the screen, we say the trajectory is going
to infinity. When such an event occurs, the program is paused, and can be
restarted by hitting escape, though the trajectory should be reinitialized
first, for example by using the arrow keys and then hitting 'i'. You can
turn this feature off in which the program pauses by setting diameters to a
negative number.
This diameter is also used by the basin boundary and straddle
trajectory routines to determine if the trajectory is diverging. If you
want to specify that the trajectory has exited as soon as the box has been
left, set diameters to 0.
** When you rescale the screen while plotting using 's', the program
automatically rescales diameters, increasing it accordingly if you are
blowing up a small section of the screen. Each window has its own value of
diameters.
* SS for ScreenSectors - specify the active window
This command is for specifying the active window. The screen screen can be
split up into four windows that are quadrants, and the entire screen can be
a window (the default case, window number 0). You designate the quadrant or
sector by entering 1, 2, 3, or 4 (or 0 for full screen). The sectors are
arranged as
1 2
3 4 and 0 for the entire screen
The reason for this enumeration is due to the fact that you can change the
working sector using keys F1, F2, F3, F4, (and F10 for returning to full
screen plotting since there is no F0 key). On some computers those keys are
arranged in the pattern
F1 F2
F3 F4
For an example of how to use these, suppose you were plotting an attractor,
and you want to plot the attractor in sector 1 and successive blow ups in
other sectors. Proceed as follows:
**
Hit F1 (or from the main menu enter SS and enter 1). Hit 'c' to clear the
window. (Caution: 'C' clears the entire screen, not just the sector you are
working on.) The attractor will continue to plot, reduced in size. Move the
small cross around using the arrow keys. Use the keys x,y,X,Y to store the
desired box coordinates (the region you want to blow up runs from x (left)
to X (right) horizontally and y (bottom) to Y vertially. These keys store
the relevant coordinate of the small cross. Hit
'p' (pause after one dot mode)
's' (declares that you want to create a window
in some quadrant of the screen -or in the entire screen- and its scale is
chosen so that it will be the region enclosed by the box)
'F2' (says the window should be the upper right quadrant)
'Esc' to return to plotting
If you had wanted the region in the box to fill the entire screen, you
should have hit
'F10'
When creating a window using 's', the region of the new window is erased.
There is no way to move a current picture in a box to a window whether new
or old. You must recompute the picture.
*
* NM for Newton method (sub)menu
Newton's method is used for finding periodic orbits.
Newton's method is described in the text obtained by entering 'NM'.
The Newton method can be used for finding periodic orbits. If you
want a period p orbit, then the Newton method is set up to minimize the
difference between the initial condition y1[] and the p th iterate of that
point. The program puts the hopefully better estimate of a periodic orbit
in both y[] and y1[].
** An upgraded version of that is also available and it is called the
Quasi-Newton method. It uses the Newton routine and calculates the step the
Newton method recommends. Sometimes the Newton step gives a new initial
point which is worse than the old initial condition, that is, the "error" (
= the distance between the initial point and its p th iterate) is
increased. This can occur because the Newton method is based on
linearization techniques and the processes are nonlinear. The Newton Method
recommends a step, that is a change in the initial point. If the error for
the new position is greater than the error before the step, the Quasi-
Newton Method tries a step in the recommended direction but smaller in
size. Iterating the quasi-Newton method will result in convergence to a
LOCAL minimum of the error. If that's not 0, too bad. Try a different
starting point for the method. Using the quasi-Newton method is essentially
always preferrable to using the plain Newton. If a smaller step is needed,
it will say so on the computer screen, so you will know if the program
deviates form the Newton step.
** NP for NewtonPeriod
If you want to find an orbit with period 3, then use NP to set the period
to 3. The Newton Method (when implemented successively several times) may
then find an orbit of period 3 or of period 1 (which counts as an orbit of
period 3) or it may fail completely; The period really means the number of
plotted dots; thus if you are iterating a differential equation and you are
plotting every Runge-Kutta step, and the forcing period is say equivalent
to the time it takes for 30 Runge-Kutta steps, then the period should be 30
or 60; if you are plotting only once every period as is usually the case
with a map, then period 3 would mean 3 periods.
** Nx for applying the Newton method x times The Newton method is
applied consecutively where x can be 1 or 2 or ... 9, for example N5.
** Q1 for applying the Quasi-Newton method once.
** Qx for x Quasi-Newton iterates; x can be 1 or 2 or ... 9.
The Quasi-Newton method is a variant of the Newton method in
which it is guaranteed that after the quasi-Newton step the new point is
not farther from being a periodic orbit than was the initial point. It
starts out by taking a Newton step. If that makes the situation worse, it
takes only half the recommended step and continues cutting until it does
yield an improvement. See the discussion under N.
*
* YM lists some of the vectors
Some of the (storage) vectors have special purposes:
y1[] is for initialization vector that y[] is set equal to when
hitting 'i' while plotting a trajectory, and is where the small cross is.
It is the point that the Newton method takes as its initial point.
y2[], y3[], y4[] are used in the basin routines (see B) to
designate points of an attractor whose basin points will be plotted;
y5[], y6[], y7[] are used in the basin routines to designate
points of an attractor whose basin points will NOT be plotted;
ya[], yb[] denote two ends of line to be used in the straddle
orbit calculations; see commands 'BST' and 'SST'.
Any of the vectors can be used to save temporary data;
* I for initializing y
This command changes y[] to equal the initialization vector y1[] and is
equivalent to interrupt 'i'.
* M for Move Vector
This command is for moving one vector to the location of another; for
example
M <RETURN> 0 <RETURN> 1 <RETURN>
moves vector y0[] to the location of y1[]; that is it changes the
coordinates stored in vector y0[]; if you move a vector, its coordinates
will change, so in this case the y[] will be move to wherever the little
cross is (i.e., y1[]). This command is similar to interrupt 'm'.
* SV for SetVector
This command is for setting the coordinates of a vector to desired values.
* Yx where x = 0,1,...,9, or a,...,e.
This command is for listing the coordinate values of the storage vectors
y0[],...,ye[].
*
*DM
Pictures can be stored on disk with all current parameter values.
The file name must be permissable by the operating system. MS-DOS allows up
to 8 letters, then a period followed by up to 3 letters. This can be
preceded by a letter for the disk drive with a colon, such as
A:PICTURE1.PIC
The picture that is stored is the high resolution copy, not a copy of the
screen. Current resolution is 960 dots horizontally by 544 vertically.
Substitute for "A:" above the appropriate disk drive. If the
picture is in the current disk drive, no drive designation is necessary so
you would have:
PICTURE1.PIC
You can also store just the data and parameters in a file with
practically the same name, the same file name except that after the period
the program automatically inserts DD, that is, in the above case
A:PICTURE1.DD
If you are going to create disk files to save data or pictures
that you have spent time creating, then make sure you have disk space to
save it. Before saving data with the Dynamics command "DD" or "TD" (meaning
"Data Dump" and "To Disk", more about these below), be sure to have space
available. In the above case you could substitute a formatted floppy for
the DYNAMICS disk in the "A" drive before invoking the "DD" or "TD"
commands.
*
COMMANDS:
** DN for DiskName
If you store a picture on the disk or to retreive it from the disk, you
have to specify the file name. DN is for changing the Disk file's Name for
the next picture to be stored. The operating system's rules are: up to 8
characters followed by a period followed by up to three characters. You can
preceed the name by the disk designation, so you might use a name like
A:henon1.pic
Be sure to use a disk with enough vacant space (70KBytes). Another file
name will also be created, namely the same file name except ending in '.DD'
These files are not actually created unless you use the commands 'TD' (or
'TDWP') and 'DD' respectively.
* TD for ToDisk
Entering this command copies the previous or current picture To a Disk
file. The picture also remains in the program. The disk file includes
almost all current values of the parameters. The space needed varies
depending on the number of parameters and vectors to be saved but you can
estimate 70 KBytes. If there is insufficient space on the disk, the
program will probably crash. If a file with that name already exists, the
program will write over the old file, destroying the old one. The file is
mixed binary and ascii, with all current values of the parameters in ascii;
the ascii part will be difficult to change using an editor because of the
binary part of the file; so edit only files created with the command DD.
** TDWP for To Disk When Printing (not in menu)
This command sends the current picture to the disk each time the picture is
printed; entering this command does not by itself transmit the picture to
the disk. Turn this off using command TDWP again, that is
ToDiskWhenPrinting is a toggle. It has been omitted from the menu due to
infrequent use.
** FD for FromDisk
This command uses the file named in the disk menu, e.g. L.PIC. If a picture
has been stored in using that file name, "FD" makes the program read the
picture from the disk into core memory.To use the picture, enter a command
beginning with R (for Restore picture) such as RT (to plot a trajectory) or
RBL (to plot a basin of attraction) or CONT. The command CONT is equivalent
to putting 'R' in front of the next trajectory or basin boundary command,
except that CONT leaves the dot number unchanged, not resetting it to 0.
Invoking FD does not change any parameters of the current process.
** AFD for AddFromDisk
This command adds the picture from Disk file into core picture, so that the
two pictures are overlaid; follow with RT or RBL to use it. The disk file
copy remains on the disk unaltered. If the file does not exist, the program
may crash. When the dots of that file are added to the screen, they are
added using the current color (for those with color screen). This enables
you to create a number of files with different parts of a picture, and the
add them together, using DN to set the name and using the interrupts to
set the new color, before each call to AFD.
* DD for Dump Data
This command creates an ascii file that contains the Process name + values
of most constants and vectors. The file is just like the one created using
TD except the picture is not saved. If a file by that name already exists,
it is deleted and replaced by the new one. To use such a file, you must be
in DOS. Ordinarily you would start the program with the command
DYNAMICS<Enter>
Now if you have created a data dump file named LORENZ.DD (or you use the
file by that name that comes with the distribution disk, you can start the
program from DOS using the DOS line
DYNAMICS LORENZ.DD<Enter>
This resets the parameters and vectors to their previous value according to
the values in the file. The picture is NOT contained in this file. See also
'DN' and 'FD'.
**
A file of commands can be created using an editor or word
processor or it can be done automatically using command DD mentioned above.
LORENZ.DD which is for the Lorenz differential equations. It causes one of
the variables, x(t), to be plotted vertically against time horizontally
(instead of the default for the Lorenz map: x(t) horizontally against
z(t)). This requires resetting a number of parameters. You can see all
these settings by typing
filename <return>
or viewing the file with an editor before running the program, that is,
when you have the DOS prompt. On the other hand they can be implemented
very easily: when starting the program type
DYNAMICS LORENZ.DD <return>
**
A Hypothetical File LORENZ.DD with comments added might look like
the following list (but would be longer). This file is set up so that it
can change parameters of the program so as to plot the x(t) variable of the
Lorenz system against time. You never personally have to read a file
created by the DD command since the program will do it for you, so in fact
you need not worry about how to interpret it.
L Code for the Lorenz system
COORDS Indicates we will change the coordinates to be plotted
3 0 Coordinate 3 is time t (horizontal axis) while 0 is x(t)
(vertical)
STEP Set differential equation time step size at:
0.005
XS Set horizontal coordinate to run from
0 60 0 to 60.
YS Set vertical coordinate to run from
-22 22 -22 to +22
FILEEND Take input from keyboard.
When the program is plotting, the interactive keys such as i c b 2
3 4 q etc are operational even though 6666 has not yet been encountered.
**
You can put a number of file names on the command and mix in
commands. The commands must be preceded with a ':', so for example
DYNAMICS LORENZ.PIC :CONNECT :RT <return>
The file of parameters is read in, and then since the file name ends in
".PIC", the program assumes there is a picture that should be read in and
it is read in. The command "CONNECT" says that when the trajectory is
plotted, the dots should be connected with lines. The command "T" means
that the trajectory should be plotted.
*
* UM for Unstable manifold (sub)menu
The unstable manifold of a periodic orbit can be computed using
these routines IF the periodic orbit has been found with considerable
precision-- as could be obtained using the Newton method. The point y1[],
whose position is indicated by the small cross, must be located very close
to the position of one of the points on the periodic orbit. Therefore, the
small cross should be moved near the suspected position of the periodic
orbit. Then the Newton method (or better yet the quasi-Newton method) can
used to refine the position of the orbit. Command NP is used to set the
period. Use the Quasi-Newton or Newton method several times until the error
stops decreasing. The Newton method puts the small cross (that is y1[]) at
the position of the orbit and it uses the period set using 'NP'. Even if
you enter the position manually, you must set 'period' using 'NP'. The
default period is 1. The stable and unstable manifold routines also use the
quasi-newton routine to make sure the orbit has been accurately located.
** AB for drawing images of the segment from ya to yb
The basic tool in this section is the ability to compute the
curvilinear image of a line segment. This is provided in the routine AB
which in its simplest form draws a straight line between ya and yb and the
"image" images of it. When yb is chosen to the image of ya, the the
successive images link together into a single curve.
** UPIX for Unstable manifold pixel number.
The program plots the unstable manifold on either the left side or the
right side. It starts at y1 and plots moving outward away from y1. Stable
and unstable manifold calculations are extremely accurate even for chaotic
processes, even for the parts of the manifold far from the periodic point.
However to speed computation, the computer plots 4 dots for every one it
computes (in the default case). That is, it plots accurately points that
are about 4/1000 times the screen width and then plots additional points
to connect them. Using this command, this number can be decreased for
example to 1 so that all points plotted are computed accurately but then
the program will run about four times slower.
** UL for Unstable manifold Left
After setting y1[] at the periodic point, and setting the period, entering
UL will cause the manifold to be drawn.
The program first applies the quasi-Newton routine once or more
times to guarantee that the point y1 is in fact sufficiently close to a
fixed point or periodic point.
Next the program chooses ya to be a point very close to y1 and it
chooses yb to be the 2 times NP th iterate of ya. Then it draws the 2 NP th
image of the ya,yb segment, and then draws the 4 times NP th iterate of
ya,yb, and so on.
** SL (and SR) for Stable manifold Left (Right)
This command is like UL (or UR) except the program first automatically
substitutes the inverse of the system (see INVERT) if it is available. If
it is not available, the routine will not work. The stable manifold is the
unstable manifold of the inverse. When the routine is terminated, the
inverse is again invoked, now yielding the original system. If the picture
is saved while the routine is running, it will save the data for the
inverse.
** RUL for Restore screen + Unstable manifold Left
This command restores the previous picture before beginning to plot the
manifold. This might be used if you have already plotted the attractor or
the right side of the unstable manifold.
** UR is for Unstable Manifold Right side
This command computes the half of the unstable manifold on the right side
of the periodic orbit.
** RUR for Restore+Unstable Right
This command is analogous to RUL.
** RSR and RSL are like SR and SL but Restore the picture first.
*
* W for When and Where
It is essential for basin calculations and for straddle calculations
(next section) to know whether a trajectory through a specified point is
"diverging" or if it approaches one of the test points y2 through y7. This
routine is implicitly called repeatedly by basin and straddle routines.
Practice with this command will familiarize you with what those commands
are actually doing.
More specifically, this routine stops as soon as the trajectory that
starts at the small cross diverges (that is goes more than SD screenwidths
or heights from the screen) and it stops as soon as it comes within a
distance RA of any of the points y2 through y7 (ignoring any of these
points that have not been set, that is, still has -9999 for coordinate
values) and if neither of those occurs before MC iterates, it stops then
anyway. The routine then reports which of these events occurred and how
long it took for the event to occur. If it stops only because it has
reached MC iterates, it stores the final point in storage vector ye. The
latter is useful because a system may have an attractor that you did not
know about, and this allows you to access a point of the attractor.
** It typically takes much longer for the trajectory to be iterated and
checked MC times (default value is 2000 iterates) than to discover the
trajectory has approached some specified point. Therefore when running
basin routines, the y's should be set in such a manner that MC iterates is
only rarely if ever reached. When the routine is used implicitly, it tests
other initial points and does not use the small cross.
* BM for Basins submenu
For each point in a grid (for example 100X100) the basin computation
determines if the trajectory through that grid point goes near one of the
test vectors
y2[], y3[], or y4[],
before it goes near any of the test points for the second basin,
y5[], y6[], or y7[].
If so it plots a large dot at the grid point and if not it leaves the spot
blank on the screen. (What is a lighted dot on the screen will be a black
dot on paper.) The program repeats the procedure for all the grid points.
If the trajectory diverges (as described in command "W"), the point may or
may not be plotted.
If y2 has not been set (i.e., it still has its default values -
9999.) the point will be plotted. If it has been set and the trajecotry
diverges, it will not be plotted).
** Practice indicates that quite a few points will take 100 or more
iterates so you have to experiment on the maximum number of iterates. I
sometimes set (the maximum number of) iterates to be a few thousand. If
there are two attractors, one of which can be infinity) this is OK. If
there are two bounded attractors, set y5[] to be a point of the other
attractor. Then when the trajectory comes close to y2[] or y5[], the
iterating will stop -- and a point will or will not be plotted depending on
whether the point it came near was y2 or y5 -- and then the next grid point
will be tested. This might average only 30 or so iterates even though the
maximum number of iterates is a few thousand. Hence it is important to set
y5[] if there are two bounded attractors.
** MC for Max Checks
This command allows you to specify the maximum number of iterates that will
be attempted, to see if an initial point's trajectory will approach one of
the points y2,...y7, (depending on which of these have been set) or if it
is going to infinity. Sometimes there are attracting points that you do not
know about. If the trajectory is iterated MC times without approaching any
of the test points in either attractor, then the final point is stored in
storage vector ye[] for later investigation. You may wish to include such
points in one of the two sets of test points.
** RA for Radius of Attraction
A trajectory is declared to be going to an attractor if it gets within this
"radius of attraction" distance from any of the points y2,...,y7 (depending
on which of these have been set).
** BL for compute Basin, Low resolution
"Low resolution" means a 100 X 100 grid is used; blocks are plotted instead
of points so that the picture is not sparse.
** RBL for Restore picture + compute Basin:Low res
"Low resolution" means a 100 X 100 grid is used; R here means the previous
picture computed is restored to the screen before the basin boundary is
computed, so there will be an overlay of two pictures.
** BM for compute Basin:Med resolution
Medium resolution means a grid is used 320 wide by 200 high; Therefore this
is 6 times as many points and 6 times slower than low resolution;
** RBM for Restore + compute Basin:Med res
R here means the previous picture computed is restored to the screen before
the basin boundary is computed, so there will be an overlay of two
pictures.
** BMH for compute Basin Medium-High resolution 320 X 272
The width 320 is 1/3 the epson printer's horizontal resolution and 272 is
1/2 the number of vertical lines being used.
** BH for computing basin High resolution 960 X 544
These high resolution computations can be very time consuming, about 52
times as long as low resolution.
** RBH for Restore picture + compute Basin:High resolution
R here means the previous picture computed is restored to the screen before
the basin boundary is computed, so there will be an overlay of two
pictures.
*
* SM Straddle trajectory submenu
Straddle trajectories are trajectories essentially trajectories
that lie in unstable sets, that is sets that are invariant but are unstable
in the sense that trajectories starting near (but not on) the set will
diverge from the set. Basin boundaries are such sets. Another example of
such a set is a collection of points that do not go to an attractor even
though almost all points nearby do go to the same attractor. The first case
where there are two attractors is especially simple and reliable. The
second case is much more difficult and our algorithms are still being
refined.
** Straddle trajectories are actually represented by a pair of
points, ya[] and yb[], that are very close to each other. The word
"straddle" refers to the fact that ya and yb are on opposite sides of the
set you want the trajectory to lie in. The trajectories are initialized by
choosing ya[] and yb[]. In the case of basin straddle trajectories
(including "accessible basin straddle trajectories"), you must specify the
vectors as described in the section "BASINS OF ATTRACTION".
** SDIST The target distance between points ya and yb
All straddle orbits use some procedure to refine the line segment between
ya and yb, that is to choose new points ya and/or yb that on the interval
between the current ya and yb. This procedure is used repeatedly until the
distance between them is less than a maximum allowable distance "sdist",
specified using command SDIST (Straddle DISTance). When the distance is
below sdist, the point ya is plotted (which will produce the point as if yb
is plotted if sdist is small) and the program applies the process once to
both ya and yb, that is the map is iterated once, if the process is a map,
or one differential equation step is taken if the process is a differential
equation.
** SST for Saddle Straddle Trajectory
This routine is (sometimes) capable of finding and plotting chaotic
trajectories that do not lie in a chaotic attractor. The basic idea is to
look for a trajectory that does not "exit" from a specified "restraining
region". This region can have holes in which case the trajectory could exit
the set by enterring one of the holes. The set is a box excluding the holes
centered at any of the points y2, ..., y7 that have been set. The radius of
those holes is set by command 'RA'. For example, if the Henon map is
studied in parameter ranges that are too large to admit a chaotic
attractor, then we look for trajectories that take as long as possible to
leave a box that includes the screen. The size of the box is determined by
"diameters" and the command to set that is SD. To run the program for this
case, set ya[] and yb[] so that the line segment between them cuts across
the region where the transient attractor is suspected to lie, that is,
there exist points on the line segment that remain in the region for all
time. For example they may be chosen to be (-3,0) and (3,0). The points
y2[] through y7[] should remain at the default values, that is not set.
This routine has been developed and is being developed by a group at the
University of Maryland.
** The program has a subroutine that calculates the "exit time", the
time it takes the trajectory through a point to leave the box (or a more
complicated set if some of the vectors y2 through y7 are set). This routine
is the same one that is used to determine which basin a trajectory goes to
but here only the time it takes is used.
** Given a pair of points ya[],yb[], the refinement algorithm tries
to find new pairs ya[],yb[] close together on the line segment between the
old pair such that some point between the new pair has an exit time larger
than that of either of the new ya[] or yb[].
** RSST for Restore picture + Saddle Straddle Trajectory
** BST for Basin-Straddle Trajectory
This command is for finding a trajectory on a basin boundary. Basin
boundaries are highly unstable by nature. A point slightly off a boundary
will go to the attractor.
To have a boundary, there must be two basins. One basin is
determined by
y2[], y3[], and y4[],
as described in *B, and the other basin is described by
y5[], y6[], and y7[].
The points ya[] and yb[] must both be set; that is they cannot have the
default values and they must be in different basins, that is, one must be
in the y2-y3-y4 basin and the other must be in the y5-y6-y7 basin. Since
they are in different basins, we can say they "straddle" the basin
boundary.
The program can determine which basin any point is in. It
determines which basins ya and yb are in. When these two points are more
than a specified distance apart, the program examines the midpoint between
them. If the midpoint is in the same basin as ya, it moves ya to that
midpoint, while if the midpoint is in the basin of yb, it moves yb to the
midpoint. We still have two points, one in each basin, but now they are
only half as far apart. This process is continued until ya and yb are
within some distance of each other, currently 10E-8.
** RBST for Restore picture + Basin-Straddle Trajectory
*
* STEP for Step size of the differential equation solver
The differential equation solver routine is a fixed step Runge-Kutta.
* EULER Euler differential equation solver
This command makes the differential equation solver a single step Euler
solver.
* RUNGE fourth order differential equation solver
This command makes the differential equationsolver a fourth order fixed
step size Runge-Kutta solver. This is the default solver.
* E Error reports
This command corresponds to interrupt 'E', resulting in the computation of
the single step error the the differential equation solver makes; this
computation is made every fifth iterate.
* SPC for Steps Per Cycle
This command is used instead of 'STEP' when the differential equation has
periodic forcing; if the period of the forcing is 2*pi/C4 (as is true in
several cases) it is most convenient to tell the program the number of
steps per period rather than the exact step size.
* CONN connect the consecutively plotted dots
This command causes successive dots to be connected by straight lines. It
can also be used for maps, though the results are strange-looking graphs.
This feature turns itself off momentarily in a number of situations, such
as if one dot is outside the screen area, since then it probably does not
make sense to connect dots before and after the outlyer. Also, if a
coordinate of y[] is changed using the modulo calculations, for example, if
the angle variable in the pendulum goes beyond pi and is decreased using a
mod calcuation, then the resulting dot is not connected to the previous
dot. If you are plotting the time-2 pi return map, you may find that
between two consecutive points, the program had to alter one of the phase
space coordinates using a modulo calculation, so those points will not be
connected.
**
Because the calculations are carried out in rather low precision integer
arithmetic (to speed calculations), the "straight line is rather imperfect.
** DIS (= DISconnect) turns off the CONNECT feature.
*
* COLOR 'F7' 'F8' 'F9' 'Z'
The program automatically plots in color when using a color
screen with an EGA board (and probably VGA, though that has not been
tested), and you can tell it to work in color using the older and more
common CGA board by invoking the command "COLOR". Do not use these commands
if you have a Hercules compatible graphics board. The screen has the
following resolution:
width (dots) height #colors
EGA monocrome or color: 640 350 2 or 16
CGA monocrome: 640 200 mono
CGA color: 320 200 4
The colors are numbered with 0 being the background color. The program
starts with color = 1. Interrupt F7 decreases the number by 1 until you get
to 0 and F8 increases it by 1. Interrupt F9 allows you to specify the color
number. F9 must be followed by an integer and <ENTER> and color is set
equal to that integer.
The high resolution copy in memory from which the program both
refreshes the screen and prints is monocrome, 960 by 528. Interrupt 'r'
will refresh the screen in the active color. Therefore if you want to
create a color picture, you cannot do much refreshing of the screen. It is
our experience using a variety of color terminals that the best way to get
a high quality permanent record of a color picture on the screen is to
photograph it. We recommend color slides. Color printers do not reproduce
the brilliant colors of the screen. If you want to create a high color
picture with the objective of photographing the screen, you should aim at
the minimal prompting level, and this is achieved by setting interrupt '0'
(recall the default level is 3). You must first practice creating your
picture with a higher prompting level if what you are doing is complicated,
usually at 2 or 3.
** PRNON PRiNter ON-- text to printer instead of plotting screen
This sends almost all text to the printer instead of the screen,
in order not to destroy the picture on the screen. No such command is
needed if you are using a monochrome screen since interrupt 'r' will
restore the screen, but in color it restores all plotted pixels to the
current active color.
** PRNOFF reverses the effects of the command PRNON.
** SETMODE returns the screen to the wakeup mode for the program
If the command COLOR succeeds in getting you more color, then it
does so at the cost of lowering the screen resolution, and you can undo the
COLOR command with this command.
If you have a CGA card, you lose some resolution when plotting in
color, and even the text is lower resolution, so I have added a command
"SETMODE" which returns the screen to monochrome. The CGA color mode has
four palettes of color, and you can try the different palettes by hitting
interrupt 'Z'. It has no effect with other graphics boards.
**Q
You can set the shades of each color. You have either 16 colors or
after command COLOR you have 256. After command Q or interrupt Q,
you are asked to input the number of the color that you want to
set and the 3 shade levels (levels run from 0 to 63). Standard VGA
codes for various colors. The shade of each color can have values
from 0 to 63. When you are asked to enter the 4 integers, you can
hit <Enter> to terminate the command.
If you enter a second 4 after being prompted, the number
of the color must be larger than the first. If the color numbers
were, say, 4 and 12, then the program would also assign shades to
5 through 11, linearly interpolating the shades. If you then
entered another 4, such as for color number 15, it would assign 15
as requested and would assign 13 and 14 by linearly interpolating.
*
*BIFM
You can make bifurcation diagrams directly on your Epson (or
compatible) printer. The diagrams can be of arbitrary length, one inch or
20 feet long. A "bifurcation diagram" is a picture that shows what happens
to the attractor as a parameter is varied. At this time the parameter must
be rho. Using command COORDS, you select which coordinate will be plotted
horizontally and which vertically on the screen. For bifurcation diagrams
on the printer, only the coordinate you choose for horizontal plotting
matters, and we will call that the X coordinate.
The current status of all relevant variables can be seen by
viewing the menu, which you call using command BIFM.
**BIF
In the default case, command BIF instructs the program to
calculate the X coordinates of the attractor for 400 different values of
rho. (The number of line can be changed using command BIFL). For each of
these rho values, the trajectory is first computed for 200 preiterates
without plotting anything. Then for the next 700 iterates, The X coordinate
is plotted, or rather stored for printing. When the program has computed
the results for eight values of rho, the results are sent to the printer,
with one pass of the printer head plotting the eight lines. The only
command you must invoke prior to BIF is BIFS to set the scale of rho.
**BIFI
The default is for the program to initialize only at the
beginning of the plot and then NOT reinitialize for each value of rho. You
can instruct the program to initialize for each rho using command BIFI,
which is a toggle, so entering the command twice restores it to the default
case.
**BIFL sets the number of horizontal lines, that is the number of
parameter values (about 720 per page).
**BIFS
This command is needed to set the scale of rho for printed
bifurcation diagrams. Do not use YS which IS used for bifuraction diagrams
plotted on the screen. The default values are both -9999. which tells the
program to the fact that they have not been set.
**BIFP
The printer will print the value of rho on the left side of the
page unless command BIFP is called. It is a toggle. The value is printed to
the left side of the eight lines and is the rho value of the first of the
eight lines.
**BIF2 sets preiterates and iterates; the first number is the number of
preiterates at each parameter value before plotting any points; the second
number is the number of iterates plotted for each parameter value.
*